XML (eXtensible Markup Language) is a flexible, self-descriptive markup language that is designed to transport and store data. The XML language has no predefined tags, so the tags used in XML are defined by the author of an XML document. XML data is stored in plain text format, which makes it easy to create data that can be shared by different applications. XML data can be read by different-and even incompatible-applications, which provides a software- and hardware-independent means for carrying and storing data.
Some application use a schematized version of XML in which the building blocks and structure of an XML document are predefined by a schema. The XML schema may define, for example, the elements and attributes that can appear in a XML document, the data types for the elements and attributes, the use, number and order of child elements, and the like.
The XML schema may use predefined data types to describe allowable document content and to validate the data in an XML document. The XML schema can also provide secure data communication where a sender and receiver use the same schema and both parties use the same description of the XML content and, therefore, have a mutual understanding of the XML content.
However, if an application or protocol using the XML schema is revised, then the XML schema may also need to be revised to support changes in the application or protocol. This requires each application to keep close track of the XML schema version capability of other users to ensure that the data exchanged between users can be understood by the other party. If there are multiple active versions of the XML schema that are in use by various applications, then it becomes complex for the one application to identify the version in use on every other application and to preserve a mapping of the types of data to be sent to each other application.